class Solution {
public:
/*  
    bool isPalindrome(int x) {
        if(x < 0 || x != 0 && x % 10 == 0){  //为负数 || 以0为结尾的数不是回文
            return false;
        }
        
        vector<int> num;
        for(int i = 0; x > 0; ++i){
            // num[i] = x % 10;  //X
            num.push_back(x % 10);
            x /= 10;
        }
        for(int i = 0, j = num.size() - 1; i < j; ++i, --j){
            if(num[i] != num[j]){
                return false;
            }
        }

        return true;
    }
*/

/*
// 反转字符串比较
    bool isPalindrome(int x) {
        string str = to_string(x);
        string restr = reverse(t.begin(), t.end());
        return str == restr;
    }
*/

    bool isPalindrome(int x) {
        if(x < 0 || x != 0 && x % 10 == 0){  //为负数 || 以0为结尾的数不是回文
            return false;
        }

        int reverseNum = 0;
        while(x > reverseNum){
            // 反转后半部分数字
            reverseNum = reverseNum * 10 + x % 10;  
            x /= 10;
        }
        return x == reverseNum || x == reverseNum / 10;  // 偶数 || 奇数
    }  
};